package com.turing.post.transaction.util;

import java.util.Date;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 商户交易流水接口
 * 
 * @author ZXL
 * 
 */
@Remote
@Local
public interface MchHisTradDetailDao {

	/**
	 * 商户交易流水插入
	 * 
	 * @param mtd
	 *            商户交易流水对象
	 * @throws PCPSApplicationException
	 *             异常信息
	 */
	public void insert(MchHisTradDetail mtd) throws PCPSApplicationException;

	/**
	 * 根据四要素检索商户交易流水
	 * 
	 * @param mrchBrchNo
	 *            商户分支机构号
	 * @param startTime
	 *            起始日期
	 * @param endTime
	 *            终止日期
	 * @param salebranchNo
	 *            销售机构号
	 * @return 商户交易流水对象列表
	 * 
	 */
	public List<Object[]> getMchHisTradDetailList(PCPSWebInput webInput,
			String startDate, String endDate);

	/**
	 * 根据两要素检索商户单卡交易明细
	 * 
	 * @param CardNo
	 *            卡号
	 * @param startTime
	 *            起始日期
	 * @param endTime
	 *            终止日期
	 * @return 商户单卡交易流水对象列表
	 * 
	 */
	public List<Object[]> getMchCardTranlNoDepositList(PCPSWebInput webInput,
			String startDate, String endDate);

	/**
	 * 根据要素检索西邮寄卡商户渠道充值明细表
	 * 
	 * @param MerchantNo
	 *            商户号
	 * @param MerchantBranchNo
	 *            商户分支机构号
	 * @param startDate
	 *            起始日期
	 * @param endTime
	 *            终止日期
	 * @return 商户渠道充值明细对象列表
	 * 
	 */
	public List<Object[]> getMchHisTradDetailRechargeList(
			PCPSWebInput webInput, String startDate, String endDate,
			String MerchantNo, String MerchantBranchNo);

	/**
	 * 根据要素检索西邮寄卡商户渠道充值统计表
	 * 
	 * @param MerchantNo
	 *            商户号
	 * @param startDate
	 *            起始日期
	 * @param endTime
	 *            终止日期
	 * @return 商户渠道充值统计对象列表
	 * 
	 */
	public List<Object[]> getMchHisTradDetailRechargeTotal(
			PCPSWebInput webInput, String startDate, String endDate,
			String MerchantNo);

	/**
	 * 根据要素检索渠道交易充值轧差表
	 * 
	 * @param MerchantNo
	 *            商户号
	 * @param startDate
	 *            起始日期
	 * @param endTime
	 *            终止日期
	 * @return 商户渠道充值统计对象列表
	 * 
	 */
	public List<Object[]> getMchHisTradDetailAccount(PCPSWebInput webInput,
			String startDate, String endDate, String MerchantNo);

	/**
	 * 西邮寄卡交易明细
	 * 
	 * @param webInput
	 * @param startTranDate
	 * @param endTranDate
	 * @param cardNo
	 * @return
	 */
	public List<Object[]> getMchCardsTranReport(PCPSWebInput webInput,
			String startTranDate, String endTranDate, String cardNo);

	public MchHisTradDetail getMchHisTradDetailByPk(String merchantNo,
			Date tranDate, String tranSeqNo);
}
